Date: Tue, 10 Dec 1996 21:47:30 GMT
Server: NCSA/1.4.2
Content-type: text/html
Last-modified: Fri, 08 Nov 1996 23:11:08 GMT
Content-length: 4994


<h1><a name=research>Mike VanHilst's Research</h1>
<title>Mike VanHilst's research</title>

Mike's area of research is software evolution and reuse.
Mike's thesis work addresses two problems in object-oriented 
programming: how to create programs that can be easily adapted 
to new requirements, and how to write code that can be easily
reused when creating new applications.  The two problems are 
closely related -- the former reuses most of a program's code, 
while the latter reuses smaller pieces.
<p>

Mike's approach to source code reuse and adaptability involves the 
use of fine-grained components, where each component ideally captures 
a single decision or factor.  In object oriented programming each 
component encodes an incomplete piece of a class.  The key to this
approach is to provide a method for implementing components in such a 
way that they can be composed and independently interchanged.  Mike 
is proposing a way to do this using inheritance, parameterization, and 
compile-time binding.  To manage the components and produce designs 
that use them, Mike has adapted a design approach based on 
collaborations and roles.
<p>

To learn more about Mike's research, you may download one or
more of the following papers co-authored with Mike's thesis advisor,
<!WA0><!WA0><!WA0><a href="http://www.cs.washington.edu/homes/notkin/">David Notkin</a>.
<p>

<!WA1><!WA1><!WA1><a href=http://www.cs.washington.edu/homes/vanhilst/isotA.ps>
<cite>Using C++ Templates to Implement Role-Based Designs</cite>
</a>[155k Postscript]
<!WA2><!WA2><!WA2><a href=http://www.cs.washington.edu/homes/vanhilst/isotA.ps.gz>
[47k gzipped]</a>
<!WA3><!WA3><!WA3><a href=http://www.cs.washington.edu/homes/vanhilst/isotAabs.txt>
[text abstract]</a>.
This paper describes the mechanisms and compares Mike's approach to a 
framework approach for implementating object collaborations.  It was 
presented at the JSSST International Symposium on Object Technologies 
and Systems 
<!WA4><!WA4><!WA4><a href="http://www.jaist.ac.jp/~takuo/ISOTAS96/">(ISOTAS'96)</a>
in March 1996.
<p>

<!WA5><!WA5><!WA5><a href=http://www.cs.washington.edu/homes/vanhilst/oopslabl.ps>
<cite>Using Role Components to Implement Collaboration-Based Designs</cite>
</a>[163k Postscript]
<!WA6><!WA6><!WA6><a href=http://www.cs.washington.edu/homes/vanhilst/oopslabl.ps.gz>
[50k gzipped]</a>
<!WA7><!WA7><!WA7><a href=http://www.cs.washington.edu/homes/vanhilst/oopsbabs.txt>
[text abstract]</a>.
This paper describes a design approach adapted from Jacobson's OOSE 
(use-case-like) methodology.  The approach solves a number of problems 
in the recylcing machine design from Jacobson's book and improves the 
adaptability of the resulting application to unanticipated change.  
There is also some discussion of Mike's experience in using the approach 
on a larger application.  The paper will be presented at 
<!WA8><!WA8><!WA8><a href="http://www.acm.org:8005/sigplan/oopsla/oopsla96/oopsla96.html">
OOPSLA'96</a> in October 1996.
<p>

<!WA9><!WA9><!WA9><a href=http://www.cs.washington.edu/homes/vanhilst/fse60l.ps>
<cite>Decoupling Change from Design</cite></a>[160k Postsript]
<!WA10><!WA10><!WA10><a href=http://www.cs.washington.edu/homes/vanhilst/fse60l.ps.gz>
[50k gzipped]</a>
<!WA11><!WA11><!WA11><a href=http://www.cs.washington.edu/homes/vanhilst/fse60abs.txt>
[text abstract]</a>.
In this paper Mike decomposes the modules from traditional 
designs into submodules (using the mechanisms described in the 
ISOTAS paper) with interesting results.  The basic argument is 
that change can be better addressed by submodules at a level 
lower than that of traditional design modules.  The analysis
uses several published designs for the KWIC application and
a collection of changes said to be difficult for certain designs.
This paper will be presented at the 
<!WA12><!WA12><!WA12><a href=http://www.cs.washington.edu/homes/vanhilst/http://www.csl.sri.com/sigsoft96/>
ACM SIGSOFT Symposium on the Foundations of Software Engineering</a>
in October 1996.
<p>

<hr>
<p>

Mike participated in the 
<!WA13><!WA13><!WA13><a href="http://hci.ise.vt.edu/phd/VirtualForum">Doctoral Symposium</a>
at OOPSLA'95 and had a poster demonstrating an interesting composition
of data structures using his approach to fine-grained components.
<p>

Mike participated in the Subjectivity Workshop at OOPSLA'94 and will 
be participating again in the 
<!WA14><!WA14><!WA14><a href="http://www.cms.dmu.ac.uk/People/mcs/subjectivity96/">
Subjectivity</a> workshop at OOPSLA'96.
<p>

In addition to software engineering, Mike has other research
interests, including software quality, participatory design, 
user interfaces, image processing, and color spaces.  
Mike's thesis advisor is <!WA15><!WA15><!WA15><a
href="http://www.cs.washington.edu/homes/notkin/">David Notkin</a>.
<p>

Here are some pointers to 
<!WA16><!WA16><!WA16><a href="http://www.cs.washington.edu/homes/vanhilst/related_work.html">
papers and related work</a> by others.
<hr>
<p>

<!WA17><!WA17><!WA17><img src="http://www.cs.washington.edu/htbin-post/speed/nph-count?width=4&link=http://www.cs.washington.edu/homes/vanhilst/research.html">
</a> visits since 8 November 1996.

</body>

<p> <hr>
<address>
<!WA18><!WA18><!WA18><a href="http://www.cs.washington.edu/homes/vanhilst/">
Michael VanHilst</a> <br>
Last modified: 
Sunday, September 1, 1996
</address>

</html>


